package com.lakeworks.service;

import com.lakeworks.domain.OprAttachment;
import com.lakeworks.domain.vo.OprAttachmentVO;

import java.util.List;

/**
 * 入厂附件Service接口
 *
 * @author lake
 * @date 2023-02-08
 */
public interface IOprAttachmentService {
    /**
     * 附件扫描
     *
     * @param barcode 附件水洗码
     * @return
     */
    OprAttachment selectByBarcode(String barcode);

    /**
     * 查询入厂附件
     *
     * @param id 入厂附件主键
     * @return 入厂附件
     */
    OprAttachment selectOprAttachmentById(Long id);

    /**
     * 查询入厂附件列表
     *
     * @param oprAttachment 入厂附件
     * @return 入厂附件集合
     */
    List<OprAttachment> selectOprAttachmentList(OprAttachment oprAttachment);

    /**
     * 新增入厂附件
     *
     * @param oprAttachment 入厂附件
     * @return 结果
     */
    int insertOprAttachment(OprAttachment oprAttachment);

    /**
     * 修改入厂附件
     *
     * @param oprAttachment 入厂附件
     * @return 结果
     */
    int updateOprAttachment(OprAttachment oprAttachment);

    /**
     * 批量删除入厂附件
     *
     * @param ids 需要删除的入厂附件主键集合
     * @return 结果
     */
    int deleteOprAttachmentByIds(String ids);

    /**
     * 删除入厂附件信息
     *
     * @param id 入厂附件主键
     * @return 结果
     */
    int deleteOprAttachmentById(Long id);

    List<OprAttachment> selectByProductIdOrCompanionId(Long id);

    List<OprAttachmentVO> listOprAttVoByProId(Long productId);

    Integer countOprAttVoByProId(Long productId);

    List<OprAttachment> listByPickupId(Long pickupId);

}
